﻿var MyCart = {
    /*
     * 功能：购物车加入商品
     * 参数：_pid：商品的标识,_sid：店铺ID,_pname：商品名称,_sname：店铺名称,_price：单价,_skuId:具体的规格价钱的id，_num：数量,_gg：规格(规格id|规格图片 多个用,分隔)
     */
    addItemData: function (_pid, _sid, _pname, _pimg, _sname, _price,_skuId, _num, _gg) {
        var datas = this.getAllData();
        var itemData = {
            pid: _pid,
            sid: _sid,
            pname: _pname,
            pimg: _pimg,
            sname: _sname,
            price: _price,
            skuId:_skuId,
            num: _num,
            gg: _gg
        };
        $.ajax({
            cache: false,
            type: "post",
            url: "/ShoppingCart/AddToCartAjax",
            data: itemData
        });
        if (this.checkObjByPid(_pid)) {
            this.updateObjById(_pid, _num);
        } else {
            datas.push(itemData);
            this.updateData(datas);
        }
    },
    /*
     * 功能：判断指定ID商品是否已存在购物车中
     * 参数：id：商品的标识
     * 返回：TRUE/FALSE 存在/不存在
     */
    checkObjByPid: function (id) {
        var jsonStr = CookieData.get("datas");
        var jsonObj = JSON.parse(jsonStr);
        var isExist = false;
        for (var i = 0, len = jsonObj.length; i < len; i++) {
            if (jsonObj[i].pid == id) {
                isExist = true;
                break;
            }
        }
        return isExist;
    },
    /*
     * 功能：更新本地数据
     * 参数：arr数组对象
     * 返回：更新后的数组对象 
     */
    updateData: function (arr) {
        var jsonStr = JSON.stringify(arr);
        CookieData.set({
            name: "datas",
            value: jsonStr
        });
        jsonStr = CookieData.get("datas");
        return JSON.parse(jsonStr);
    },
    /*
     * 功能：更新指定ID商品数据
     * 返回：商品总数
     */
    updateObjById: function (id, num) {
        var jsonStr = CookieData.get("datas");
        var listObj = JSON.parse(jsonStr);
        for (var i = 0, len = listObj.length; i < len; i++) {
            if (listObj[i].pid == id) {
                listObj[i].num = listObj[i].num + num;
                break;
            }
        }
        return this.updateData(listObj);
    },
    /*
     * 功能：删除指定ID商品数据
     * 返回：删除后的数组对象
     */
    deleteObjByPid: function (id) {
        var lisObj = this.getAllData();
        for (var i = 0, len = lisObj.length; i < len; i++) {
            if (lisObj[i].pid == id) {
                lisObj.splice(i, 1);
                break;
            }
        }
        this.updateData(lisObj);
        return lisObj;
    },
    /*
     * 功能：获取Redis中商品总数量
     * 返回：商品总数
     */
    getTotalCount: function () {
        /*循环遍历数组，获取每一个对象中的pCount值相加总和*/
        var totalCount = 0; //默认为0
        //var jsonStr = CookieData.get("datas");
        //var listObj = JSON.parse(jsonStr);
        //for (var i = 0, len = listObj.length; i < len; i++) {
        //    totalCount = listObj[i].num + totalCount;
        //}
        $.ajax({
            cache: false,
            async: false,
            type: "post",
            dataType: "json",
            url: "/ShoppingCart/GetCartItemCount",
            success: function (json) {
                totalCount = parseInt(json.data);
            },
            error: function (a, b, c) {
                totalCount = 0;
            }
        });
        return totalCount;
    },
    /*
     * 功能：获取本地数据
     * 返回：数组对象
     */
    getAllData: function () {
        var jsonStr = CookieData.get("datas");
        if (!jsonStr) {
            CookieData.set({
                name: "datas",
                value: "[]"
            });
        }
        jsonStr = CookieData.get("datas");
        var listObj = JSON.parse(jsonStr);
        return listObj;
    },
    /*
     * 功能：清空购物车
     */
    clearAll: function () {
        CookieData.set({
            name: "datas",
            value: "[]"
        });
    }
};